package edu.tfh.s2.ehkbot.inventar;

import java.util.Vector;

import edu.tfh.s2.ehkbot.steuerung.Position;

/**
 * Die Warenbox Klasse Symboliesiert eine Warenbox.
 * 
 * @author s2zehn
 */
public class Warenbox {

	private int barcode;
	private Vector<Ware> waren;

	/**
	 * Konstruktor von Warenbox.
	 * 
	 * @param barcode
	 *            Der Barcode der Warenbox.
	 */
	public Warenbox(int barcode) {
		this.barcode = barcode;
		this.waren = new Vector<Ware>();
	}

	/**
	 * Fügt eine Ware in die Liste der Waren in der Warenbox ein.
	 * 
	 * @param ware
	 *            Die Ware.
	 */
	public void addWare(Ware ware) {
		waren.add(ware);
	}

	/**
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	public boolean equals(Object rhs) {
		if (this == rhs)
			return true;
		if (!(rhs instanceof Warenbox))
			return false;

		return this.barcode == ((Warenbox) rhs).barcode;
	}

	/**
	 * Liefert den Barcode der Warenbox.
	 * 
	 * @return Den Barcode.
	 */
	public int getBarcode() {
		return barcode;
	}

	/**
	 * Errechnet wo ein sich ein freier Platz befindet in der Warenbox.
	 * 
	 * @param size
	 *            Die größe 3 Element Array (xyz) [mm].
	 * @return Die Position Relativ zur Warenbox
	 */
	public Position getFreiePosition(int[] size) {
		// TODO: sucht im Bild nach freienplatz
		return new Position(0, 0, 0);
	}

	/**
	 * Prüft ob die Warenbox leer ist.
	 * 
	 * @return true fals keine Ware geladen ist.
	 */
	public boolean istLeer() {
		return waren.size() == 0;
	}
	
	public Vector<Ware> getWaren(){
		return waren;
	}
}